RAIS  3.2
C:/Projekte/RAIS/ApplicationLogiLayer/UserManagement.cs
Go to the documentation of this file.
00001 
00029 using System;
00030 using System.Collections.Generic;
00031 using System.Text;
00032 using System.Xml;
00033 using System.Transactions;
00034 
00035 using RAIS.Common.DynamicMaskManagement;
00036 using RAIS.Common.UserManagement;
00037 
00038 using DataRoles = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.DataRole>;
00039 using DataRoleAttributes = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.DataRoleAttribute>;  
00040 using FunctionRoles = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRole>;
00041 using FunctionRoleCategories = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRole.Category>;
00042 using FunctionRoleSubcategories = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRole.Subcategory>;
00043 using Masks = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Mask>;
00044 using Regions = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Region>;
00045 using Districts = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.District>;
00046 using Facilities = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Facility>;
00047 using Practices = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Practice>;
00048 using UserTypes = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.UserTypeData>;
00049 using Users = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.UserData>;
00050 using MessageBoxRestrictions = System.Collections.Generic.List<RAIS.Common.UserManagement.MessageBoxRestriction>;
00051 
00052 namespace RAIS.ApplicationLogicLayer
00053 {
00057     public class UserManagement
00058     {
00059         #region Public static methods
00060 
00061 
00062 
00063         public static void InitializeDAL()
00064                 {
00065                         new DataAccessLayer.UserManagement();
00066                 }
00076         public static UserData GetUserData(string userName)
00077         {
00078             return DataAccessLayer.UserManagement.GetUserData(userName);    
00079         }
00080 
00081         //#-#
00082         public static List<UserAssignment> GetUserAssignmentsForUser(UserData user, DateTime selectedDate)
00083         {
00084             return DataAccessLayer.UserManagement.GetUserAssignmentsForUser(user, selectedDate);
00085         }
00086         public static List<UserAssignment> GetUserAssignmentsForUser(UserData user)
00087         {
00088             return DataAccessLayer.UserManagement.GetUserAssignmentsForUser(user);
00089         }
00090 
00091         //#-#
00092         public static List<Facility> getFacilitiesByPractice(int practiceID)
00093         {
00094             return DataAccessLayer.UserManagement.getFacilitiesByPractice(practiceID);
00095         }
00096 
00097         public static List<UserAssignment> GetUserAssignmentHistoryForUser(UserData user)
00098         {
00099             return DataAccessLayer.UserManagement.GetUserAssignmentHistoryForUser(user);
00100         }
00107                 public static bool LoginUser(UserData userData)
00108                 {
00109                         return RAIS.DataAccessLayer.UserManagement.LoginUser(userData);
00110                 }
00117         public static bool LogoutUser(UserData userData, bool isLoggOffClick)
00118                 {
00119                         return RAIS.DataAccessLayer.UserManagement.LogoutUser(userData, isLoggOffClick);
00120                 }
00128                 public static bool AddAccountRequest(UserData userData, ref string returnMessage)
00129                 {
00130                         return RAIS.DataAccessLayer.UserManagement.AddAccountRequest(userData, ref returnMessage);
00131                 }
00139                 public static bool ReleaseAccountRequest(UserData userData, ref string returnMessage)
00140                 {
00141                         if (ValidateUserDataModification(userData, ref returnMessage))
00142                                 return RAIS.DataAccessLayer.UserManagement.ReleaseAccountRequest(userData, ref returnMessage);
00143                         else
00144                                 return false;
00145                 }
00153                 public static bool RejectAccountRequest(UserData userData, ref string returnMessage)
00154                 {
00155                         return RAIS.DataAccessLayer.UserManagement.RejectAccountRequest(userData, ref returnMessage);
00156                 }
00164         public static bool AddUser(UserData userData, ref string returnMessage)
00165         {
00166             return  ValidateNewUserData(userData, ref returnMessage) &&
00167                     DataAccessLayer.UserManagement.AddUser(userData, ref returnMessage);
00168         }
00177         public static bool ModifyUser(UserData userData, ref string returnMessage)
00178         {
00179             if (ValidateUserDataModification(userData, ref returnMessage))
00180                 return DataAccessLayer.UserManagement.ModifyUser(userData, ref returnMessage);
00181             else
00182                 return false;
00183         }
00189         public static Users Users
00190         {
00191             get
00192             {
00193                 Users users = DataAccessLayer.UserManagement.Users;
00194                 //Users lockedUsers = new Users();
00195                                 //foreach (UserData user in users.Values)
00196                                 //{
00197                                 //    if (user.Locked)
00198                                 //        lockedUsers.Add(user.Login, user);
00199                                 //}
00200                                 //foreach (UserData lockedUser in lockedUsers.Values)
00201                                 //{
00202                                 //    users.Remove(lockedUser.Login);
00203                                 //}
00204                 return users;
00205             }
00206         }
00212         public static UserTypes UserTypes
00213         {
00214             get
00215             {
00216                 return DataAccessLayer.UserManagement.UserTypes;
00217             }
00218         }
00224         public static DataRoles DataRoles
00225         {
00226             get
00227             {
00228                 return DataAccessLayer.UserManagement.DataRoles;
00229             }
00230         }
00237         public static Practices Practices
00238         {
00239             get
00240             {
00241                 return DataAccessLayer.UserManagement.Practices;
00242             }
00243         }
00244 
00250         public static Facilities Facilities
00251         {
00252             get
00253             {
00254                 return DataAccessLayer.UserManagement.Facilities;
00255             }
00256         }
00262         public static Regions Regions
00263         {
00264             get
00265             {
00266                 return DataAccessLayer.UserManagement.Regions;
00267             }
00268         }
00274         public static FunctionRoles FunctionalRoles
00275         {
00276             get
00277             {
00278                 return DataAccessLayer.UserManagement.FunctionalRoles;
00279             }
00280         }
00286                 public static FunctionRoles PredefinedFunctionalRoles
00287                 {
00288                         get
00289                         {
00290                                 return DataAccessLayer.UserManagement.PredefinedFunctionalRoles;
00291                         }
00292                 }
00298         public static FunctionRoleCategories FunctionalRoleCategories
00299         {
00300             get
00301             {
00302                 return DataAccessLayer.UserManagement.FunctionalRoleCategories;
00303             }
00304         }
00309                 public static FunctionRoleCategories GetAllowCustomizationCategories()
00310                 {
00311                         return DataAccessLayer.UserManagement.GetAllowCustomizationCategories();
00312                 }
00318         public static FunctionRoleSubcategories GetFunctionalRoleSubcategories(FunctionRole.Category category)
00319         {
00320             return DataAccessLayer.UserManagement.GetFunctionalRoleSubcategories(category);
00321         }
00328                 public static FunctionRoleSubcategories GetFunctionalRoleSubcategories(FunctionRole.Category category, bool withAll)
00329                 {
00330                         return DataAccessLayer.UserManagement.GetFunctionalRoleSubcategories(category, withAll);
00331                 }
00339                 public static FunctionRoleSubcategories GetFunctionalRoleSubcategories(FunctionRole.Category category, bool withAll, bool showProtectors, bool showEvaluators)
00340                 {
00341                         return DataAccessLayer.UserManagement.GetFunctionalRoleSubcategories(category, withAll, showProtectors, showEvaluators);
00342                 }
00349         public static Masks GetMasks(FunctionRole.Category category, FunctionRole.Subcategory subcategory)
00350         {
00351             return DataAccessLayer.UserManagement.GetMasks(category, subcategory);
00352         }
00359                 public static Masks GetMasksWithoutAll(FunctionRole.Category category, FunctionRole.Subcategory subcategory)
00360                 {
00361                         return DataAccessLayer.UserManagement.GetMasksWithoutAll(category, subcategory, false);
00362                 }
00370         public static Masks GetMasksWithoutAllWhithHidden(FunctionRole.Category category, FunctionRole.Subcategory subcategory)
00371         {
00372             return DataAccessLayer.UserManagement.GetMasksWithoutAll(category, subcategory, true);
00373         }
00381                 public static Masks GetMasksWithoutAll(FunctionRole.Category category, FunctionRole.Subcategory subcategory, DynamicMask.DynamicMaskTypeData dynamicMaskType)
00382                 {
00383                         return DataAccessLayer.UserManagement.GetMasksWithoutAll(category, subcategory, dynamicMaskType);
00384                 }
00391                 public static XmlDocument GetSiteMapByUser(UserData user, bool designMode)
00392         {
00393             return DataAccessLayer.UserManagement.GetSiteMapByUser(user, designMode);
00394         }
00402         public static void GetMaskByReference(string reference, out string CategoryID, out string SubcategoryID, out string MaskID)
00403         {
00404             DataAccessLayer.UserManagement.GetMaskByReference(reference, out CategoryID, out SubcategoryID, out MaskID);
00405         }
00411         public static Districts GetDistrictsByRegion(Region region)
00412         {
00413             if (region == null)
00414                 return null;
00415             else
00416                 return DataAccessLayer.UserManagement.GetDistrictsByRegion(region);
00417         }
00424         public static Facilities GetFacilitiesByRegionAndDistrict(Region region, District district)
00425         {
00426             if (region == null || district  == null)
00427                 return null;
00428             else
00429                 return DataAccessLayer.UserManagement.GetFacilitiesByRegionAndDistrict(region, district);
00430         }
00438         public static bool AddDataRole(string dataRoleName, ref string returnMessage)
00439         {
00440              return DataAccessLayer.UserManagement.AddDataRole(dataRoleName, ref returnMessage);
00441         }
00447         //public static Dictionary<string, DataRoleAttribute> GetDataRoleAttributes(DataRole dataRole)
00448         //{
00449         //    return DataAccessLayer.UserManagement.GetDataRoleAttributes(dataRole);
00450         //}
00459         public static bool AddDataRoleAttribute(DataRole dataRole, DataRoleAttribute dataRoleAttribute, ref string returnMessage)
00460         {
00461             return DataAccessLayer.UserManagement.AddDataRoleAttribute(dataRole, dataRoleAttribute, ref returnMessage);
00462         }
00471         public static bool RemoveDataRoleAttribute(DataRole dataRole, DataRoleAttribute dataRoleAttribute, ref string returnMessage)
00472         {
00473             return DataAccessLayer.UserManagement.RemoveDataRoleAttribute(dataRole, dataRoleAttribute, ref returnMessage);
00474         }
00482         public static bool RemoveDataRole(DataRole dataRole, ref string returnMessage)
00483         {
00484             return DataAccessLayer.UserManagement.RemoveDataRole(dataRole, ref returnMessage);
00485         }
00493         public static bool SaveDataRole(DataRole dataRole, ref string returnMessage)
00494         {
00495             using (TransactionScope ts = new TransactionScope())
00496             {
00497                 bool success = true;
00498 
00499                 foreach (DataRoleAttribute attribute in dataRole.RemovedAttributes.Values)
00500                 {
00501                     if (!RemoveDataRoleAttribute(dataRole, attribute, ref returnMessage))
00502                     {
00503                         success = false;
00504                         break;
00505                     }
00506                 }
00507 
00508                 if (success)
00509                 {
00510                     foreach (DataRoleAttribute attribute in dataRole.AddedAttributes.Values)
00511                     {
00512                         if (!AddDataRoleAttribute(dataRole, attribute, ref returnMessage))
00513                         {
00514                             success = false;
00515                             break;
00516                         }
00517                     }
00518                 }
00519                 if (success)
00520                 {
00521                     success = DataAccessLayer.UserManagement.SaveDataRole(dataRole, ref returnMessage);
00522                 }
00523                 if (success)
00524                 {
00525                     returnMessage = RAIS.Common.Messages.MODIFICATIONS_SAVED;
00526                     dataRole.Modified = false;
00527                     ts.Complete();
00528                 }
00529                 return success;
00530             }
00531         }
00539         public static bool RemoveFunctionRole(FunctionRole functionRole, ref string returnMessage)
00540         {
00541             return DataAccessLayer.UserManagement.RemoveFunctionRole(functionRole, ref returnMessage);
00542         }
00550         public static bool AddFunctionRole(string functionRoleName, ref string returnMessage)
00551         {
00552             return DataAccessLayer.UserManagement.AddFunctionRole(functionRoleName, ref returnMessage);
00553         }
00562         public static bool AddFunctionRole(string functionRoleName, FunctionRole.ValidationType validationType, ref string returnMessage)
00563         {
00564             return DataAccessLayer.UserManagement.AddFunctionRole(functionRoleName, validationType, ref returnMessage);
00565         }
00574         public static bool AddFunctionRoleAttribute(FunctionRole functionRole, FunctionRoleAttribute functionRoleAttribute, ref string returnMessage)
00575         {
00576             return DataAccessLayer.UserManagement.AddFunctionRoleAttribute(functionRole, functionRoleAttribute, ref returnMessage);
00577         }
00586         public static bool RemoveFunctionRoleAttribute(FunctionRole functionRole, FunctionRoleAttribute functionRoleAttribute, ref string returnMessage)
00587         {
00588             return DataAccessLayer.UserManagement.RemoveFunctionRoleAttribute(functionRole, functionRoleAttribute, ref returnMessage);
00589         }
00598                 public static bool AddUserType(FunctionRole functionRole, UserTypeData userType, ref string returnMessage)
00599                 {
00600                         return DataAccessLayer.UserManagement.AddUserType(functionRole, userType, ref returnMessage);
00601                 }
00610                 public static bool RemoveUserType(FunctionRole functionRole, UserTypeData userType, ref string returnMessage)
00611                 {
00612                         return DataAccessLayer.UserManagement.RemoveUserType(functionRole, userType, ref returnMessage);
00613                 }
00621         public static bool SaveFunctionRole(FunctionRole functionRole, ref string returnMessage)
00622         {
00623             using (TransactionScope ts = new TransactionScope())
00624             {
00625                 bool success = true;
00626 
00627                 foreach (FunctionRoleAttribute attribute in functionRole.RemovedAttributes.Values)
00628                 {
00629                     if (!RemoveFunctionRoleAttribute(functionRole, attribute, ref returnMessage))
00630                     {
00631                         success = false;
00632                         break;
00633                     }
00634                 }
00635 
00636                 if (success)
00637                 {
00638                     foreach (FunctionRoleAttribute attribute in functionRole.AddedAttributes.Values)
00639                     {
00640                         if (!AddFunctionRoleAttribute(functionRole, attribute, ref returnMessage))
00641                         {
00642                             success = false;
00643                             break;
00644                         }
00645                     }
00646                 }
00647                                 if (success)
00648                                 {
00649                                         foreach (UserTypeData userType in functionRole.RemovedUserTypes.Values)
00650                                         {
00651                                                 if (!RemoveUserType(functionRole, userType, ref returnMessage))
00652                                                 {
00653                                                         success = false;
00654                                                         break;
00655                                                 }
00656                                         }
00657                                 }
00658                                 if (success)
00659                                 {
00660                                         foreach (UserTypeData userType in functionRole.AddedUserTypes.Values)
00661                                         {
00662                                                 if (!AddUserType(functionRole, userType, ref returnMessage))
00663                                                 {
00664                                                         success = false;
00665                                                         break;
00666                                                 }
00667                                         }
00668                                 }
00669                                 if (success)
00670                 {
00671                     success = DataAccessLayer.UserManagement.SaveFunctionRole(functionRole, ref returnMessage);
00672                 }
00673                 if (success)
00674                 {
00675                     returnMessage = RAIS.Common.Messages.MODIFICATIONS_SAVED;
00676                     functionRole.Modified = false;
00677                     ts.Complete();
00678                 }
00679                 return success;
00680             }
00681         }
00689         public static bool UserExists(string userName, ref string returnMessage)
00690         {
00691             if (DataAccessLayer.UserManagement.UserExists(userName))
00692             {
00693                 returnMessage = Common.Messages.USER_EXISTS_MESSAGE;
00694                 return true;
00695             }
00696             else
00697             {
00698                 return false;
00699             }
00700         }
00705                 public static Facility GetFacilityByID(int facilityID)
00706                 {
00707                         return RAIS.DataAccessLayer.UserManagement.GetFacilityByID(facilityID);
00708                 }
00713                 public static Department GetDepartmentByID(int departmentID)
00714                 {
00715                         return RAIS.DataAccessLayer.UserManagement.GetDepartmentByID(departmentID);
00716                 }
00721                 public static FunctionRoles GetFunctionalRolesByUserType(UserTypeData userTypeData)
00722                 {
00723                         return RAIS.DataAccessLayer.UserManagement.GetFunctionalRolesByUserType(userTypeData);
00724                 }
00732                 public static bool ValidateRemoveUserTypeFromFunctionRole(FunctionRole functionRole, UserTypeData userType, ref string returnMessage)
00733                 {
00734                         return RAIS.DataAccessLayer.UserManagement.ValidateRemoveUserTypeFromFunctionRole(functionRole, userType, ref returnMessage);
00735                 }
00742                 public static bool AddSubcategory(FunctionRole.Subcategory subcategory, ref string returnMessage)
00743                 {
00744                         return RAIS.DataAccessLayer.UserManagement.AddSubcategory(subcategory, ref returnMessage);
00745                 }
00752                 public static bool SaveSubcategory(FunctionRole.Subcategory subcategory, ref string returnMessage)
00753                 {
00754                         return RAIS.DataAccessLayer.UserManagement.SaveSubcategory(subcategory, ref returnMessage);
00755                 }
00762                 public static bool SaveSubcategoryOrder(FunctionRole.Subcategory subcategory, ref string returnMessage)
00763                 {
00764                         return RAIS.DataAccessLayer.UserManagement.SaveSubcategoryOrder(subcategory, ref returnMessage);
00765                 }
00772                 public static bool RemoveSubcategory(int subcategoryID, ref string returnMessage)
00773                 {
00774                         return RAIS.DataAccessLayer.UserManagement.RemoveSubcategory(subcategoryID, ref returnMessage);
00775                 }
00781                 public static Dictionary<string, string> GetUserStatusesHistoryByUser(UserData user)
00782                 {
00783                         return RAIS.DataAccessLayer.UserManagement.GetUserStatusesHistoryByUser(user);
00784                 }
00788         public static void UpdateContextVisibleName(string contextName, string contextVisibleName)
00789         {
00790             DataAccessLayer.UserManagement.UpdateContextVisibleName(contextName, contextVisibleName);
00791         }
00795         public static void DeleteContext(string contextName)
00796         {
00797             DataAccessLayer.UserManagement.DeleteContext(contextName);
00798         }
00799         
00800         #endregion
00801         #region Private helper methods
00802 
00810         static bool ValidateNewUserData(UserData userData, ref string returnMessage)
00811         {
00812             if (DataAccessLayer.UserManagement.UserExists(userData.Login))
00813             {
00814                 returnMessage = Common.Messages.USER_EXISTS_MESSAGE;
00815                 return false;
00816             }
00817             else
00818             {
00819                 returnMessage = Common.Messages.USER_ADDED;
00820                 return ValidateUserData(userData, ref returnMessage);
00821             }
00822         }
00831         static bool ValidateUserDataModification(UserData userData, ref string returnMessage)
00832         {
00833             return ValidateUserData(userData, ref returnMessage);
00834         }
00843         static bool ValidateUserData(UserData userData, ref string returnMessage)
00844         {
00845             if (userData.CompleteName == null || userData.CompleteName.Length == 0)
00846             {
00847                 returnMessage = Common.Messages.USER_COMPLETE_NAME_MISSING;
00848                 return false;
00849             }
00850             else
00851                 if (userData.Password == null || userData.Password.Length == 0)
00852                 {
00853                     returnMessage = Common.Messages.USER_PASSWORD_MISSING;
00854                     return false;
00855                 }
00856                 else
00857                     if (userData.Email.Length == 0)
00858                     {
00859                         returnMessage = Common.Messages.USER_EMAIL_MISSING;
00860                         return false;
00861                     }
00862                     else
00863                     {
00864                                                 if (userData.IsActive && userData.Facility == null && userData.DataRole == null)
00865                                                 {
00866                                                         returnMessage = Common.Messages.USER_DATA_ROLE_FACILIY_MISSING;
00867                                                         return false;
00868                                                 }
00869                                                 else
00870                                                 {
00871                                                         returnMessage = Common.Messages.USER_DETAILS_SAVED;
00872                                                         return true;
00873                                                 }
00874                     }
00875         }
00876         #endregion
00877 
00878         // #-# 
00879         public static MessageBoxRestrictions getActiveMessageBoxRestrictionsForUser(UserData user)
00880         {
00881             return DataAccessLayer.UserManagement.getActiveMessageBoxRestrictionsForUser(user);
00882         }
00883         public static MessageBoxRestrictions getActiveMessageBoxRestrictionsForUser(UserData user, DateTime selectedDate)
00884         {
00885             return DataAccessLayer.UserManagement.getActiveMessageBoxRestrictionsForUser(user, selectedDate);
00886         }
00887 
00888         /*
00889          * #+#
00890          */
00891         public static DataRole getMessageBoxDataRoleByUser(UserData user)
00892         {
00893             return DataAccessLayer.UserManagement.getMessageBoxDataRoleByUser(user);
00894         }
00895         /* */
00896 
00897         public static DataRole getMessageBoxDataRoleByUserAndDate(UserData user, DateTime date)
00898         {
00899             return DataAccessLayer.UserManagement.getMessageBoxDataRoleByUserAndDate(user, date);
00900         }
00901 
00902         public static List<UserData> GetUserFreeToTakeOver()
00903         {
00904             return DataAccessLayer.UserManagement.GetUserFreeToTakeOver();
00905         }
00906 
00907         public static bool clearTakeOverForUser(UserData user)
00908         {
00909             return DataAccessLayer.UserManagement.clearTakeOverForUser(user);
00910         }
00911 
00912         //#-#
00913         public static bool saveMessageboxRestriction(UserData user, MessageBoxRestriction newMbr, ref string returnMessage)
00914         {
00915 
00916             using (TransactionScope ts = new TransactionScope())
00917             {
00918                 bool success = true;
00919 
00920                 if (success)
00921                 {
00922                     success = RAIS.DataAccessLayer.UserManagement.saveMessageboxRestriction(user, newMbr, ref returnMessage);
00923                 }
00924                 if (success)
00925                 {
00926                     ts.Complete();
00927                 }
00928                 return success;
00929             }
00930         }
00931 
00932 
00933         public static bool editMessageboxRestriction(UserData user, MessageBoxRestriction mbr, ref string returnMessage)
00934         {
00935 
00936             using (TransactionScope ts = new TransactionScope())
00937             {
00938                 bool success = true;
00939 
00940                 if (success)
00941                 {
00942                     success = RAIS.DataAccessLayer.UserManagement.editMessageboxRestriction(user, mbr, ref returnMessage);
00943                 }
00944                 if (success)
00945                 {
00946                     ts.Complete();
00947                 }
00948                 return success;
00949             }
00950         }
00951 
00952         public static bool deleteMessageboxRestriction(UserData user, MessageBoxRestriction mbr, ref string returnMessage)
00953         {
00954 
00955             using (TransactionScope ts = new TransactionScope())
00956             {
00957                 bool success = true;
00958 
00959                 if (success)
00960                 {
00961                     success = RAIS.DataAccessLayer.UserManagement.deleteMessageboxRestriction(user, mbr, ref returnMessage);
00962                 }
00963                 if (success)
00964                 {
00965                     ts.Complete();
00966                 }
00967                 return success;
00968             }
00969         }
00970 
00971         public static List<MessageBoxRestriction> MessageboxRestrictionHistoryForUser(UserData user, ref string returnMessage)
00972         {
00973             return DataAccessLayer.UserManagement.MessageboxRestrictionHistoryForUser(user, ref returnMessage);
00974         }
00975 
00976 
00977         public static Users GetLevelThreeUsers()
00978         {
00979             return DataAccessLayer.UserManagement.GetLevelThreeUsers();
00980         }
00981 
00982         //#-#
00983         public static bool createUserAssignmentForUser(UserAssignment ua, UserData ud, ref string outputMessage)
00984         {
00985             return DataAccessLayer.UserManagement.createUserAssignmentForUser(ua, ud, ref outputMessage);
00986         }
00987 
00988         //#-#
00989         public static bool editUserAssignment(UserAssignment ua, ref string outputMessage)
00990         {
00991             return DataAccessLayer.UserManagement.editUserAssignment(ua, ref outputMessage);
00992         }
00993 
00994         //#-#
00995         public static bool deleteUserAssignment(UserAssignment ua, ref string outputMessage)
00996         {
00997             return DataAccessLayer.UserManagement.deleteUserAssignment(ua, ref outputMessage);
00998         }
00999 
01000     }
01001 }